//==============================================================================================
/**
 * @file	castle_bmp.h
 * @brief	「バトルキャッスル」BMP
 * @author	Satoshi Nohara
 * @date	08.07.05
 */
//==============================================================================================
#ifndef _CASTLE_BMP_H_
#define _CASTLE_BMP_H_

#include "castle_sys.h"
#include "system/window.h"


//==============================================================================================
//
//	定義
//
//==============================================================================================
//BMPデータナンバー
enum{
	CASTLE_BMP_MINE = 0,		//手持ちポケモン画面
	CASTLE_BMP_ENEMY,			//敵トレーナー画面
	CASTLE_BMP_MAX,
};


//==============================================================================================
//
//	手持ちポケモン　データ
//
//==============================================================================================
//ビットマップID
enum{
	MINE_BMPWIN_TR1 = 0,
	MINE_BMPWIN_MODORU,
	MINE_BMPWIN_LV,
	MINE_BMPWIN_HP,
	MINE_BMPWIN_STATUS,
	MINE_BMPWIN_LIST,
	MINE_BMPWIN_TALK,
	MINE_BMPWIN_TALKMENU,
	MINE_BMPWIN_TALKMENU2,
	MINE_BMPWIN_BASIC_LIST,
	MINE_BMPWIN_KAIHUKU_LIST,
	MINE_BMPWIN_RENTAL_LIST,
	MINE_BMPWIN_ITEMINFO,
	MINE_BMPWIN_YESNO,
	MINE_BMPWIN_SEL,
	MINE_BMPWIN_CP,
	MINE_BMPWIN_ITEM_LV,
	MINE_BMPWIN_ITEM_HP,

	// 上画面ステータス
	MINE_BMPWIN_ST_NAME,	// ポケモン名
	MINE_BMPWIN_ST_SEX,		// 性別
	MINE_BMPWIN_ST_LV_T,	//「Lv.」
	MINE_BMPWIN_ST_LV_P,	// レベル
	MINE_BMPWIN_ST_SP_T,	//「とくせい」
	MINE_BMPWIN_ST_SP_P,	// 特性
	MINE_BMPWIN_ST_CHAR_T,	//「せいかく」
	MINE_BMPWIN_ST_CHAR_P,	// 性格
	MINE_BMPWIN_ST_ITEM_T,	//「もちもの」
	MINE_BMPWIN_ST_ITEM_P,	// 持ち物
	MINE_BMPWIN_ST_HP_T,	//「ＨＰ」
	MINE_BMPWIN_ST_HP_P,	// ＨＰ
//	MINE_BMPWIN_ST_HPSRA,	// ＨＰの／
//	MINE_BMPWIN_ST_MHP_P,	// 最大ＨＰ
	MINE_BMPWIN_ST_ATC_T,	//「こうげき」
	MINE_BMPWIN_ST_ATC_P,	// 攻撃
	MINE_BMPWIN_ST_SPA_T,	//「とくこう」
	MINE_BMPWIN_ST_SPA_P,	// 特攻
	MINE_BMPWIN_ST_DEF_T,	//「ぼうぎょ」
	MINE_BMPWIN_ST_DEF_P,	// 防御
	MINE_BMPWIN_ST_SPD_T,	//「とくぼう」
	MINE_BMPWIN_ST_SPD_P,	// 特防
	MINE_BMPWIN_ST_AGI_T,	//「すばやさ」
	MINE_BMPWIN_ST_AGI_P,	// 素早さ
	MINE_BMPWIN_ST_WAZA1,	// 技名１
	MINE_BMPWIN_ST_WAZA2,	// 技名２
	MINE_BMPWIN_ST_WAZA3,	// 技名３
	MINE_BMPWIN_ST_WAZA4,	// 技名４
	MINE_BMPWIN_ST_PP1,		// PP1
	MINE_BMPWIN_ST_PP2,		// PP2
	MINE_BMPWIN_ST_PP3,		// PP3
	MINE_BMPWIN_ST_PP4,		// PP4

	// レンタルリスト：アイテム名
	MINE_BMPWIN_RLIST1,
	MINE_BMPWIN_RLIST2,
	MINE_BMPWIN_RLIST3,
	MINE_BMPWIN_RLIST4,
	MINE_BMPWIN_RLIST5,
	MINE_BMPWIN_RLIST6,
	MINE_BMPWIN_RLIST_E,
	MINE_BMPWIN_RLCP_E,
	MINE_BMPWIN_RPAGE,		// レンタルリストのページ
	MINE_BMPWIN_RRET,		// レンタルリスト「もどる」
	MINE_BMPWIN_RTITLE,		// レンタルリストタイトル
	MINE_BMPWIN_RNAME,		// レンタルリスト名前
	MINE_BMPWIN_RCP,		// レンタルリストＣＰ

	MINE_BMPWIN_RST_ITEMINFO,	// アイテム説明
	MINE_BMPWIN_RST_NAME,		// レンタルリスト中のポケモン名
	MINE_BMPWIN_RST_SEX,		// レンタルリスト中の性別
	MINE_BMPWIN_RST_LV_T,		// レンタルリスト中の「Lv.」
	MINE_BMPWIN_RST_LV_P,		// レンタルリスト中のレベル
	MINE_BMPWIN_RST_HP_T,		// レンタルリスト中の「ＨＰ」
	MINE_BMPWIN_RST_HP_P,		// レンタルリスト中のＨＰ
	MINE_BMPWIN_RST_ITEM_T,		// レンタルリスト中の「もちもの」
	MINE_BMPWIN_RST_ITEM_P,		// レンタルリスト中の持ち物名

	CASTLE_MINE_BMPWIN_MAX,			//BMPウィンドウの数
};


//==============================================================================================
//
//	敵トレーナー　データ
//
//==============================================================================================
//ビットマップID
enum{
	ENEMY_BMPWIN_TR1 = 0,
	ENEMY_BMPWIN_MODORU,
	ENEMY_BMPWIN_LV,
	ENEMY_BMPWIN_HP,
	ENEMY_BMPWIN_STATUS,
	ENEMY_BMPWIN_BASIC_LIST,
	ENEMY_BMPWIN_BASIC2_LIST,
	ENEMY_BMPWIN_TALK,
	ENEMY_BMPWIN_TALKMENU,
	ENEMY_BMPWIN_TALKMENU2,
	ENEMY_BMPWIN_YESNO,
	ENEMY_BMPWIN_SEL,

	// 上画面ステータス
	ENEMY_BMPWIN_ST_NAME,	// ポケモン名
	ENEMY_BMPWIN_ST_SEX,	// 性別
	ENEMY_BMPWIN_ST_LV_T,	//「Lv.」
	ENEMY_BMPWIN_ST_LV_P,	// レベル
	ENEMY_BMPWIN_ST_SP_T,	//「とくせい」
	ENEMY_BMPWIN_ST_SP_P,	// 特性
	ENEMY_BMPWIN_ST_CHAR_T,	//「せいかく」
	ENEMY_BMPWIN_ST_CHAR_P,	// 性格
	ENEMY_BMPWIN_ST_ITEM_T,	//「もちもの」
	ENEMY_BMPWIN_ST_ITEM_P,	// 持ち物
	ENEMY_BMPWIN_ST_HP_T,	//「ＨＰ」
	ENEMY_BMPWIN_ST_HP_P,	// ＨＰ
//	ENEMY_BMPWIN_ST_HPSRA,	// ＨＰの／
//	ENEMY_BMPWIN_ST_MHP_P,	// 最大ＨＰ
	ENEMY_BMPWIN_ST_ATC_T,	//「こうげき」
	ENEMY_BMPWIN_ST_ATC_P,	// 攻撃
	ENEMY_BMPWIN_ST_SPA_T,	//「とくこう」
	ENEMY_BMPWIN_ST_SPA_P,	// 特攻
	ENEMY_BMPWIN_ST_DEF_T,	//「ぼうぎょ」
	ENEMY_BMPWIN_ST_DEF_P,	// 防御
	ENEMY_BMPWIN_ST_SPD_T,	//「とくぼう」
	ENEMY_BMPWIN_ST_SPD_P,	// 特防
	ENEMY_BMPWIN_ST_AGI_T,	//「すばやさ」
	ENEMY_BMPWIN_ST_AGI_P,	// 素早さ
	ENEMY_BMPWIN_ST_WAZA,	// 技

	CASTLE_ENEMY_BMPWIN_MAX,		//BMPウィンドウの数
};


// 文字表示モード
enum {
	CASTLEBMP_PRINT_MODE_LEFT = 0,	// 左詰
	CASTLEBMP_PRINT_MODE_RIGHT,		// 右詰
	CASTLEBMP_PRINT_MODE_CENTER,	// 中央
};


//==============================================================================================
//
//	extern宣言
//
//==============================================================================================

//--------------------------------------------------------------
/**
 * @brief	ビットマップ追加
 *
 * @param	ini		BGLデータ
 * @param	win		ビットマップウィンドウ
 *
 * @return	none
 */
//--------------------------------------------------------------
extern void CastleAddBmpWin( GF_BGL_INI* bgl, GF_BGL_BMPWIN* win, u8 bmp_no );

//--------------------------------------------------------------
/**
 * @brief	ビットマップウィンドウ破棄
 *
 * @param	win		ビットマップウィンドウ
 *
 * @return	none
 */
//--------------------------------------------------------------
extern void CastleExitBmpWin( GF_BGL_BMPWIN* win, u8 bmp_no );

//--------------------------------------------------------------
/**
 * @brief	ビットマップウィンドウオフ
 *
 * @param	win		ビットマップウィンドウ
 *
 * @return	none
 */
//--------------------------------------------------------------
extern void CastleOffBmpWin( GF_BGL_BMPWIN* win, u8 bmp_no );

//--------------------------------------------------------------
/**
 * @brief	メニューウィンドウ表示
 *
 * @param	ini		BGLデータ
 * @param	win		ビットマップウィンドウ
 *
 * @return	none
 */
//--------------------------------------------------------------
extern void CastleWriteMenuWin( GF_BGL_INI* bgl, GF_BGL_BMPWIN* win );

//--------------------------------------------------------------------------------------------
/**
 * 会話ウィンドウ表示
 *
 * @param	win		BMPデータ
 * @param	wintype	ウィンドウタイプ
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void CastleTalkWinPut( GF_BGL_BMPWIN * win, WINTYPE wintype );


extern void CASTLEBMP_SelBoxDataGet( u16 * num, u16 * siz );

//--------------------------------------------------------------------------------------------
/**
 * @brief	文字列表示（バッファ指定）
 *
 * @param	win		BMPWIN
 * @param	str		文字列バッファ
 * @param	x		表示基準Ｘ座標
 * @param	y		表示基準Ｙ座標
 * @param	fnt		フォント
 * @param	col		カラー
 * @param	mode	表示モード
 *
 * @return	none
 *
 * @li	mode = CASTLEBMP_PRINT_MODE_LEFT   : 左詰
 * @li	mode = CASTLEBMP_PRINT_MODE_RIGHT  : 右詰
 * @li	mode = CASTLEBMP_PRINT_MODE_CENTER : 中央
 */
//--------------------------------------------------------------------------------------------
extern void CASTLEBMP_StrPrintCore(
				GF_BGL_BMPWIN * win, STRBUF * str,
				u32 x, u32 y, FONT_TYPE fnt, GF_PRINTCOLOR col, u32 mode );

//--------------------------------------------------------------------------------------------
/**
 * @brief	文字列表示（固定文字列）
 *
 * @param	win		BMPWIN
 * @param	man		メッセージマネージャ
 * @param	msgID	文字列ＩＤ
 * @param	x		表示基準Ｘ座標
 * @param	y		表示基準Ｙ座標
 * @param	fnt		フォント
 * @param	col		カラー
 * @param	mode	表示モード
 *
 * @return	none
 *
 * @li	mode = CASTLEBMP_PRINT_MODE_LEFT   : 左詰
 * @li	mode = CASTLEBMP_PRINT_MODE_RIGHT  : 右詰
 * @li	mode = CASTLEBMP_PRINT_MODE_CENTER : 中央
 */
//--------------------------------------------------------------------------------------------
extern void CASTLEBMP_StrPrint(
				GF_BGL_BMPWIN * win, MSGDATA_MANAGER * man,
				u32 msgID, u32 x, u32 y, FONT_TYPE fnt, GF_PRINTCOLOR col, u32 mode );


#endif //_CASTLE_BMP_H_

